﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace SistemaCenterQuimPost.UI.PostAdministrador
{
    public partial class frmVentasTurno : SistemaCenterQuimPost.Plantillas.frmPlantillaHijo
    {
        //----------ATRIBUTOS-------------------------
        
        //variables de la base de datos
        DataSet2 centerQuimds;
        DataSet2TableAdapters.VentasTableAdapter ventaTa;

        //--------CONSTRUCTORES------------
        
        public frmVentasTurno()
        {
            InitializeComponent();

            centerQuimds = new DataSet2();
            ventaTa = new DataSet2TableAdapters.VentasTableAdapter();
        }


        //----------ESTADOS-------------------

        private void frmVentasTurno_Load(object sender, EventArgs e)
        {
            lblError.Visible = false; //como es un formulario sin estado, esta propiedad se setea acá.
        }

        //-----------METODOS VARIOS-----------------------

        private void btnBusVentas_Click(object sender, EventArgs e)
        {
            procesarBusqueda();

    }

        private void procesarBusqueda()
        {
            try
            {
                if (cboTurno.Text != "")
                {
                    if (cboFormaPago.Text != "")
                    {
                        ventaTa.FillTipoyTurno(centerQuimds.Ventas, cboFormaPago.Text, cboTurno.Text, Convert.ToDateTime(dtpFecha.Value.ToString().Substring(0, 10)));
                    }
                    else
                    {
                        ventaTa.FillByFechayTurno(centerQuimds.Ventas, Convert.ToDateTime(dtpFecha.Value.ToString().Substring(0, 10)), cboTurno.Text.Substring(0, 1));
                    }
                }
                else
                {
                    if (cboFormaPago.Text != "")
                    {
                        ventaTa.FillByFechayTipo(centerQuimds.Ventas, cboFormaPago.Text, Convert.ToDateTime(dtpFecha.Value.ToString().Substring(0, 10)));
                    }
                    else
                    {
                        ventaTa.FillByFechaVenta(centerQuimds.Ventas, Convert.ToDateTime(dtpFecha.Value.ToString().Substring(0, 10)));
                    }
                }
                //preguntamos si generó resultados
                if (centerQuimds.Ventas.Rows.Count > 0)
                {
                    limpiarDatos();
                    cargarGrilla();
                    calcularTotales();
                }
                else
                {
                    MessageBox.Show("La búsqueda no arrojó resultados", "VENTAS DEL TURNO", MessageBoxButtons.OK, MessageBoxIcon.Information);

                    limpiarDatos();
                }
            }
            catch (Exception ex)
            {
                //Por cualquier otra excepcion se informa el error, en este caso es un error grave.
                MessageBox.Show("La conexión a la base de datos no fué exitosa.\n\n Comuniquese con su desarrollador para solucionar el problema.\n\n" + ex.Message, "ERROR GRAVE - ACCESO A BASE DE DATO", MessageBoxButtons.OK, MessageBoxIcon.Error);

            }
        }

        private void limpiarDatos()
        {
            dgvVentas.Rows.Clear();
            lblTotalCostoValor.Text = "0";
            lblTotalSaldoValor.Text = "0";
            lblTotalVentaValor.Text = "0";
        }

        private void cargarGrilla()
        {
            for (int i = 0; i < centerQuimds .Ventas .Rows .Count ; i++ )
            {
                dgvVentas.Rows.Add(centerQuimds.Ventas[i].fechaVenta.ToString ().Substring (0,10), centerQuimds.Ventas[i].totalGeneral, centerQuimds.Ventas[i].costoGeneral, centerQuimds.Ventas[i].totalGeneral - centerQuimds.Ventas[i].costoGeneral);
            }
        }

        private void calcularTotales()
        {
            double acumVenta = 0;
            double acumCosto = 0;
            double acumSaldo = 0;

            foreach (DataGridViewRow row in dgvVentas .Rows )
            {
                acumVenta += Convert.ToDouble(row.Cells[1].Value);
                acumCosto += Convert.ToDouble(row.Cells[2].Value);
                acumSaldo += Convert.ToDouble(row.Cells[3].Value);

            }

            lblTotalVentaValor.Text = acumVenta.ToString();
            lblTotalCostoValor.Text = acumCosto.ToString();
            lblTotalSaldoValor.Text = acumSaldo.ToString();
        }

        
    }
}
